home *** CD-ROM | disk | FTP | other *** search
- var GLOBAL_LoadedImages = new Array();
- var GLOBAL_CurrentItem = "";
- var GLOBAL_Close = null;
- var GLOBAL_Hide = null;
- var GLOBAL_items = new NOF_OpenedItems();
- var GLOBAL_slideItem = null;
- var GLOBAL_slideSpeed = 10;
- var GLOBAL_slidePixel = 0;
- var GLOBAL_slideMinOffset = -800;
- var GLOBAL_slideMaxOffset = 800;
- var useDebuger = false;
- function NOF_DOMBrowser() {
- this.getMenuItemLayerStartString = function getMenuItemLayerStartString(menuItemId, parentId) {
- parentId = ( (parentId != null) && (parentId != "undefined") && (typeof(parentId) != "undefined"))
- ? new String(parentId + CONSTANTS.MENU_LAYER_SUFIX) : null;
- menuItemId += CONSTANTS.MENU_LAYER_SUFIX;
- var isAutoClose = typeof(C_MENU_AUTO_CLOSE) == "undefined" || C_MENU_AUTO_CLOSE == true ? "true" : "false";
- return '<DIV ID="' + menuItemId + '" isautoclose="' + isAutoClose + '" STYLE="z-index:5; filter:blendTrans(duration=0.5)" onmouseover="NOF_KeepOpen(\'' + menuItemId + '\', ' + parentId + ')" onmouseout="NOF_KeepClose()">';
- }
- this.getMenuItemLayerEndString = function getMenuItemLayerEndString() {
- return '</DIV>';
- }
- this.showMenuItem = function showMenuItem(image, item, offsetX, offsetY, openEffect) {
- if (typeof(item) == "string")
- item = this.getItem(item)
- image = typeof(image) == "string" ? this.getItem(image) : image;
- var top = this.findItemTopOffset(image);
- var left = this.findItemLeftOffset(image);
- var slideDirection = "";
- if (openEffect.indexOf("left") > -1 || openEffect.indexOf("Left") > -1 ) {
- top += offsetY;
- left -= offsetX;
- slideDirection = "left";
- } else if (openEffect.indexOf("top") > -1 || openEffect.indexOf("Top") > -1 ) {
- top -= offsetY;
- left += offsetX;
- slideDirection = "top";
- } else if (openEffect.indexOf("right") > -1 || openEffect.indexOf("Right") > -1 ) {
- top += offsetY;
- left += offsetX;
- slideDirection = "right";
- } else {
- top += offsetY;
- left += offsetX;
- slideDirection = "bottom";
- }
- if (item == null || typeof(item.style) == "undefined" || item.style == null )
- return;
- item.style.top = top;
- item.style.left = left;
- item.style.visibility = "visible";
- if (openEffect.indexOf("slide") > -1)
- this.slideEffect(item, slideDirection);
- else if (openEffect.indexOf("fade") > -1)
- this.fadeEffect(item);
- }
- this.hideMenuItem = function hideMenuItem(item) {
- if (typeof(item) == "string")
- item = this.getItem(item)
- if ( item == null || typeof(item) == "undefined" || item == "" || typeof(item) == "number")
- return;
- item.style.visibility = "hidden";
- }
- this.findItemLeftOffset = function findItemLeftOffset(item) {
- var offset = item.offsetLeft;
- if (item.offsetParent)
- offset += this.findItemLeftOffset(item.offsetParent);
- return offset;
- }
- this.findItemTopOffset = function findItemTopOffset(item) {
- var offset = item.offsetTop;
- if (item.offsetParent)
- offset += this.findItemTopOffset(item.offsetParent);
- return offset;
- }
- this.getItem = function getItem(itemId) {
- return document.getElementById(itemId);
- }
- this.getItemAttribute = function getItemAttribute(itemId, attrId) {
- if (this.getItem(itemId)) {
- var attr = this.getItem(itemId).attributes;
- return eval("attr." + attrId.toLowerCase() + ".value");
- }
- }
- this.debug = function debug(txt) {
- var container = this.getItem("debug");
- if ( useDebuger )
- container.value += txt + "\n";
- }
- this.fadeEffect = function fadeEffect(item) {
- item.style.visibility = "hidden";
- item.filters.blendTrans.Apply();
- item.filters.blendTrans.Play();
- item.style.visibility = "visible";
- }
- this.slideEffect = function slideEffect(item, margin) {
- GLOBAL_slideItem = item;
- this.setItemClip('rect(auto, auto, auto, auto)');
- GLOBAL_slidePixel = (margin == "top" || margin == "left") ? 100 : 0;
- this.playEffect(margin);
- }
- this.playEffect = function playEffect(margin) {
- var clip = GLOBAL_slideItem.style.clip;
- if (clip.indexOf("-") > 0)
- return;
- if (GLOBAL_slidePixel < GLOBAL_slideMinOffset || GLOBAL_slidePixel > GLOBAL_slideMaxOffset)
- return;
- var rect = 'rect(';
- if (margin == "top") {
- GLOBAL_slidePixel -= 3;
- rect += GLOBAL_slidePixel +'px auto auto auto)';
- } else if (margin == "right") {
- GLOBAL_slidePixel += 3;
- rect += 'auto ' + GLOBAL_slidePixel +'px auto auto)';
- } else if (margin == "bottom") {
- GLOBAL_slidePixel += 3;
- rect += 'auto auto ' + GLOBAL_slidePixel + 'px auto)';
- } else {
- GLOBAL_slidePixel -= 3;
- rect += 'auto auto auto ' + GLOBAL_slidePixel + 'px)';
- }
- this.setItemClip(rect);
- setTimeout('browser.playEffect("' + margin + '")', GLOBAL_slideSpeed);
- }
- this.setItemClip = function setItemClip(rect) {
- GLOBAL_slideItem.style.clip = rect;
- }
- this.getLayerTag = function getLayerTag() { return "div" };
- }
- function NOF_BrowserNetscapeNavigator() {
- window.onclick= HideMenu;
- this.fadeEffect = function fadeEffect() { return; };
- GLOBAL_slideSpeed = 1;
- return this;
- }
- NOF_BrowserNetscapeNavigator.prototype = new NOF_DOMBrowser;
- function NOF_BrowserInternetExplorer() {
- document.onmouseup = HideMenu;
- }
- NOF_BrowserInternetExplorer.prototype = new NOF_DOMBrowser;
- function NOF_BrowserNetscape4x() {
- this.getMenuItemLayerStartString = function getMenuItemLayerStartString(menuItemId, parentId) {
- parentId = ( (parentId != null) && (parentId != "undefined") && (typeof(parentId) != "undefined"))
- ? new String(parentId + CONSTANTS.MENU_LAYER_SUFIX) : null;
- menuItemId += CONSTANTS.MENU_LAYER_SUFIX;
- var isAutoClose = typeof(C_MENU_AUTO_CLOSE) == "undefined" || C_MENU_AUTO_CLOSE == true ? "true" : "false";
- return '<layer ID="' + menuItemId + '" isautoclose="' + isAutoClose + '" onmouseover="NOF_KeepOpen(\'' + menuItemId + '\', ' + parentId + ')" onmouseout="NOF_KeepClose()">';
- }
- this.getMenuItemLayerEndString = function getMenuItemLayerEndString() {
- return '</layer>';
- }
- this.getImageParent = function getImageParent(imageObject){
- for (var position = 0; position < document.layers.length; position++) {
- var layer = document.layers[position];
- for (var imagePosition = 0; imagePosition < layer.document.images.length; imagePosition++) {
- if (layer.document.images[imagePosition].name == imageObject.name) {
- return layer;
- }
- }
- }
- return null;
- }
- this.showMenuItem = function showMenuItem(image, item, offsetX, offsetY, openEffect) {
- var parent = this.getImageParent(image);
- var itemId = image;
- if (typeof(item) == "string")
- item = this.getItem(item)
- image = typeof(image) == "string" ? this.getItem(image) : image;
- var top = this.findItemTopOffset(image);
- var left = this.findItemLeftOffset(image);
- if (parent != null) {
- left += parent.pageX;
- top += parent.pageY;
- }
- var slideDirection = "";
- if (openEffect.indexOf("left") > -1 || openEffect.indexOf("Left") > -1 ) {
- top += offsetY;
- left -= offsetX;
- slideDirection = "left";
- } else if (openEffect.indexOf("top") > -1 || openEffect.indexOf("Top") > -1 ) {
- top -= offsetY;
- left += offsetX;
- slideDirection = "top";
- } else if (openEffect.indexOf("right") > -1 || openEffect.indexOf("Right") > -1 ) {
- top += offsetY;
- left += offsetX;
- slideDirection = "right";
- } else {
- top += offsetY;
- left += offsetX;
- slideDirection = "bottom";
- }
- if (typeof(item) == "undefined")
- return;
- item.y = parseInt(top);
- item.x = parseInt(left);
- item.visibility = "visible";
- if (openEffect.indexOf("slide") > -1)
- this.slideEffect(item, slideDirection);
- else if (openEffect.indexOf("fade") > -1) {
- this.fadeEffect(item);
- }
- }
- this.hideMenuItem = function hideMenuItem(item) {
- if (typeof(item) == "string")
- item = this.getItem(item)
- if ( item == null || typeof(item) == "undefined" || item == "")
- return;
- item.visibility = "hide";
- }
- this.findItemLeftOffset = function findItemLeftOffset(item) {
- return item.x;
- }
- this.findItemTopOffset = function findItemTopOffset(item) {
- return item.y;
- }
- this.getItem = function getItem(itemId) {
- if (itemId == "")
- return;
- var item = eval("document.layers['" + itemId + "']");
- return item;
- }
- this.getItemAttribute = function getItemAttribute(itemId, attrId) {
- return eval("document.layers['" + itemId.toLowerCase() + "']." + attrId);
- }
- this.getLayerTag = function getLayerTag() { return "layer" };
- this.slideEffect = function slideEffect(item, margin) {
- GLOBAL_slideItem = item;
- GLOBAL_slidePixel = (margin == "bottom" || margin == "left") ? 200 : 0;
- this.playEffect(margin);
- }
- this.playEffect = function playEffect(margin) {
- if (GLOBAL_slidePixel < GLOBAL_slideMinOffset || GLOBAL_slidePixel > GLOBAL_slideMaxOffset)
- return;
- if (margin == "top") {
- GLOBAL_slideItem.clip.bottom = GLOBAL_slidePixel += 1;
- } else if (margin == "right") {
- GLOBAL_slideItem.clip.right = GLOBAL_slidePixel += 1;
- } else if (margin == "bottom") {
- GLOBAL_slideItem.clip.top = GLOBAL_slidePixel -= 1;
- } else {
- GLOBAL_slideItem.clip.left = GLOBAL_slidePixel -= 1;
- }
- setTimeout('browser.playEffect("' + margin + '")', GLOBAL_slideSpeed);
- }
- }
- NOF_BrowserNetscape4x.prototype = new NOF_DOMBrowser;
- function NOF_BrowserFactory() {
- var agt = navigator.userAgent.toLowerCase();
- var is_major = parseInt(navigator.appVersion);
- var is_minor = parseFloat(navigator.appVersion);
- var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
- && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
- && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
- var is_nav2 = (is_nav && (is_major == 2));
- var is_nav3 = (is_nav && (is_major == 3));
- var is_nav4 = (is_nav && (is_major == 4));
- var is_nav4up = (is_nav && (is_major >= 4));
- var is_navonly = (is_nav && ((agt.indexOf(";nav") != -1) ||
- (agt.indexOf("; nav") != -1)) );
- var is_nav6 = (is_nav && (is_major == 5));
- var is_nav6up = (is_nav && (is_major >= 5));
- var is_gecko = (agt.indexOf('gecko') != -1);
- var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
- var is_ie3 = (is_ie && (is_major < 4));
- var is_ie4 = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
- var is_ie4up = (is_ie && (is_major >= 4));
- var is_ie5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
- var is_ie5_5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
- var is_ie5up = (is_ie && !is_ie3 && !is_ie4);
- var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
- var is_ie6 = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
- var is_ie6up = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);
- var is_opera = (agt.indexOf("opera") != -1);
- var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
- var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
- var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
- var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
- var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
- this.getBrowser = function getBrowser() {
- if (is_ie5up) {
- return new NOF_BrowserInternetExplorer();
- }
- if (is_nav6up) {
- return new NOF_BrowserNetscapeNavigator();
- }
- if (is_opera5up) {
- return new NOF_BrowserInternetExplorer();
- }
- if (is_nav4) {
- return new NOF_BrowserNetscape4x();
- }
- }
- }
- var browserFactory = new NOF_BrowserFactory();
- var browser = browserFactory.getBrowser();
- var CONSTANTS = {
- MENU_TYPE_IMAGE : "Image",
- MENU_TYPE_TEXT : "Text",
- BUTTON_TYPE_IMAGE : "image",
- BUTTON_TYPE_TEXT : "text",
- MENU_TABLE_HEADER : '<table border="0" cellspacing="0" cellpadding="0">',
- MENU_TABLE_END : '</table>',
- MOUSE_OVER_IMAGE : 1,
- MOUSE_OUT_IMAGE : 2,
- MENU_ITEM_HORIZONTAL : false,
- MENU_ITEM_VERTICAL : true,
- MENU_LAYER_SUFIX : "LYR",
- NOT_A_MAIN_ITEM : 1,
- MENU_REFRESH_TIME : 600
- }
- function NOF_Menu() {
- return this;
- }
- function NOF_Menu_Item() {
- this.id = arguments[0];
- this.orientation = arguments[1];
- this.openEffect = arguments[2];
- this.offsetX = arguments[3];
- this.offsetY = arguments[4];
- this.buttons = new Array();
- this.submenuHeight = 0;
- for (var i = 5; i < arguments.length; i++)
- this.buttons[i - 5] = arguments[i];
- this.getPosition = function () {
- return new Array(this.offsetX, this.offsetY);
- }
- this.getOffsetX = function getOffsetX() { return this.offsetX;}
- this.getOffsetY = function getOffsetY() { return this.offsetY;}
- this.getOpenEffect = function getOffsetY() { return this.openEffect;}
- this.getOrientation = function getOrientation() { return this.orientation; }
- return this;
- }
- function NOF_Menu_Button(link, normal, rollover, submenu) {
- this.link = link;
- this.normal = normal;
- this.rollover = rollover != "" ? rollover : normal;
- this.submenu = submenu;
- this.hasSubmenu = function hasSubmenu() {
- return (this.submenu != null)
- }
- this.type = function type() {
- if (typeof(this.rollover) == "object")
- return CONSTANTS.BUTTON_TYPE_TEXT;
- else if (typeof(this.rollover) == "string")
- return CONSTANTS.BUTTON_TYPE_IMAGE;
- else
- return null;
- }
- return this;
- }
- function NOF_Main_Menu(menuItem, parentId) {
- if(typeof(menuItem) == "undefined")
- return;
- var menuItemId = menuItem.id;
- var buffer = browser.getMenuItemLayerStartString(menuItemId, parentId) + '<table width="10" border="' + C_MENU_BORDER + '" cellspacing="' + C_MENU_SPACING + '" cellpadding="0" bgcolor="' + C_MENU_BGCOLOR + '">';
- var i = 0;
- buffer += '<tr>';
- while (i < menuItem.buttons.length) {
- var menuButton = menuItem.buttons[i];
- if (menuButton == null)
- return;
- var submenuId = "";
- if (menuButton.hasSubmenu() && menuButton.submenu) {
- submenuId = menuButton.submenu.id;
- }
- var link = menuButton.link;
- var image = menuButton.normal;
- var rollOverButton = menuButton.rollover;
- var isImageMenu = menuButton.type() == CONSTANTS.BUTTON_TYPE_IMAGE ? true : false;
- var imageName = isImageMenu ? menuItemId + 's' + i : 'NavigationButton_' + menuItemId + '_' + i;
- var isVertical = menuItem.orientation == "vertical" ? true : false;
- var target = '';
- if (link.indexOf(' target=') != -1) {
- target = link.substr(link.indexOf(' target=') + 8);
- link = link.substr(0, link.indexOf(' target='));
- }
- buffer += (isVertical && i > 1) ? '<tr><td>' : '<td>';
- var cursor = link != 'javascript:void(0)' ? 'hand' : 'default';
- buffer += '<a style="text-decoration:none; cursor:' + cursor + ';" href="' + link + '" ';
- buffer += 'onMouseOver="F_roll(\'' + imageName + '\' ,' + CONSTANTS.MOUSE_OVER_IMAGE + ', \'' + menuItemId + '\', \''+
- CONSTANTS.NOT_A_MAIN_ITEM + '\')" onMouseOut="F_roll(\'' + imageName + '\' ,' +
- CONSTANTS.MOUSE_OUT_IMAGE + ', \''+menuItemId+'\', \'' + CONSTANTS.NOT_A_MAIN_ITEM + '\')"';
- buffer += target.length ? ' target="' + target + '">' : '>';
- buffer += isImageMenu ? '<img border="0" src="' + image + '"' : '<' + browser.getLayerTag() + ' ';
- if (typeof(rollOverButton) != "undefined" || rollOverButton.length || !isImageMenu) {
- if (submenuId != "") {
- var submenu = menuButton.submenu;
- if (isImageMenu) {
- buffer += 'id="' + imageName + '" name="' + imageName +
- '" onLoad="F_loadRollover(this,\'' + rollOverButton + '\', new Array(\'' + submenuId + '\',\'' + submenu.getOrientation() + '\' , \'' + submenu.getOpenEffect() + '\', ' + submenu.getOffsetX() + ',' + submenu.getOffsetY() + '))"';
- } else {
- NOF_MenuLoadRollOver(imageName, rollOverButton, new Array(submenuId, submenu.getOrientation(), submenu.getOpenEffect(), submenu.getOffsetX(), submenu.getOffsetY() ));
- buffer += 'id="' + imageName + '" name="' + imageName + '" class="' + imageName + '" ' ;
- if (typeof(menuButton.rollover) == "object")
- buffer+= ' style="' + rollOverButton[0] + '"';
- }
- }
- else {
- if (isImageMenu)
- buffer += 'id="' + imageName + '" name="' + imageName +
- '" onLoad="F_loadRollover(this,\'' + rollOverButton + '\',0)"';
- else {
- NOF_MenuLoadRollOver(imageName, rollOverButton, 0);
- buffer += 'id="' + imageName + '" name="' + imageName + '" class="' + imageName + '" ';
- if (typeof(menuButton.rollover) == "object")
- buffer+= ' style="' + rollOverButton[0] +'"';
- }
- }
- }
- buffer += isImageMenu ? '></a></td>' :
- '><' + browser.getLayerTag() + ' id="' + imageName + '_padding" style="padding:' + rollOverButton[1] + '" padding="' + rollOverButton[1] + '" paddingOver="' + rollOverButton[3] + '">' + image +
- '</' + browser.getLayerTag() + '></' + browser.getLayerTag() + '></a></td>';
- buffer += isVertical ? "</tr>" : "";
- i++;
- }
- buffer += CONSTANTS.MENU_TABLE_END + browser.getMenuItemLayerEndString();
- document.writeln(buffer);
- var k = 0;
- while (k < menuItem.buttons.length) {
- if (menuItem.buttons[k].hasSubmenu()) {
- NOF_Main_Menu(menuItem.buttons[k].submenu, menuItem.id);
- }
- k++;
- }
- }
- function NOF_MenuLoadRollOver(button, buttonName, submenu) {
- if (button && button.src &&
- (null == button.out || typeof(button.out) == typeof(void(0)))) {
- var imageSrc = button.src;
- button.out = new Image();
- button.out.src = imageSrc;
- button.over = new Image();
- if (buttonName.lastIndexOf('/') >= 0 || buttonName.lastIndexOf('\\') >= 0) {
- imageSrc = buttonName;
- } else {
- var i = imageSrc.lastIndexOf('/');
- if (i < 0)
- i = imageSrc.lastIndexOf('\\');
- if (i < 0)
- imageSrc = buttonName;
- else
- imageSrc = imageSrc.substring(0, i + 1) + buttonName;
- }
- button.over.src = imageSrc;
- button.submenu = submenu;
- GLOBAL_LoadedImages[button.name] = button;
- } else {
- if (typeof(buttonName) == "object") {
- if (typeof(GLOBAL_LoadedImages[button]) == "undefined") {
- GLOBAL_LoadedImages[button + "Normal"] = buttonName[0];
- GLOBAL_LoadedImages[button + "Over"] = buttonName[2];
- GLOBAL_LoadedImages[button] = submenu;
- }
- return;
- }
- if (typeof(submenu) != "undefined" && typeof(button) == "string" && typeof(GLOBAL_LoadedImages[button]) == "undefined")
- GLOBAL_LoadedImages[button] = submenu;
- }
- }
- function NOF_MenuRollButton(buttonName, over, layerId, isNotMainItem) {
- var rollType = (over == CONSTANTS.MOUSE_OVER_IMAGE) ? "over" : "out";
- var isOver = (over == CONSTANTS.MOUSE_OVER_IMAGE) ? true : false;
- var rollOver = GLOBAL_LoadedImages[buttonName];
- if (typeof(rollOver) == "undefined")
- return;
- var menuType = typeof(rollOver.src) == "undefined" ? CONSTANTS.MENU_TYPE_TEXT :
- CONSTANTS.MENU_TYPE_IMAGE;
- if (menuType == CONSTANTS.MENU_TYPE_IMAGE) {
- var imageRollSrcString = "rollOver." + rollType + ".src";
- if (rollOver)
- rollOver.src = eval(imageRollSrcString) ? eval(imageRollSrcString) : "";
- } else if (menuType == CONSTANTS.MENU_TYPE_TEXT){
- if (typeof(buttonName) == "string") {
- browser.getItem(buttonName).className = isOver ? buttonName + "Hover" : buttonName;
- if (browser.getItem(buttonName + "_padding")){
- browser.getItem(buttonName + "_padding").style.padding = isOver ?
- browser.getItem(buttonName + "_padding").paddingOver :
- browser.getItem(buttonName + "_padding").padding;
- }
- if (typeof(browser.getItem(buttonName).style) != "undefined")
- browser.getItem(buttonName).style.cssText = isOver ?
- GLOBAL_LoadedImages[buttonName + "Over"] :
- GLOBAL_LoadedImages[buttonName + "Normal"];
- }
- } else
- return;
- if ((isNotMainItem == null || typeof(isNotMainItem) == "undefined" ) && over == CONSTANTS.MOUSE_OUT_IMAGE) {
- GLOBAL_CurrentItem = "";
- GLOBAL_items.removeAll();
- }
- var hasSubmenu = null;
- if (menuType == CONSTANTS.MENU_TYPE_IMAGE)
- hasSubmenu = rollOver.submenu;
- else if (menuType == CONSTANTS.MENU_TYPE_TEXT)
- hasSubmenu = typeof(rollOver) == "object";
- if (hasSubmenu) {
- if (over == CONSTANTS.MOUSE_OVER_IMAGE) {
- if ( layerId && typeof(layerId) != "undefined" && layerId != "null") {
- if (GLOBAL_Close != null)
- clearTimeout(GLOBAL_Close);
- GLOBAL_items.removeSubitems(layerId + CONSTANTS.MENU_LAYER_SUFIX);
- } else
- GLOBAL_items.removeAll();
- if (menuType == CONSTANTS.MENU_TYPE_IMAGE)
- NOF_MenuOpenItem(rollOver, rollOver.submenu, layerId);
- else
- NOF_MenuOpenItem(buttonName, rollOver, layerId);
- }
- else {
- if (menuType == CONSTANTS.MENU_TYPE_IMAGE)
- NOF_MenuCloseItem(rollOver.submenu);
- else
- NOF_MenuCloseItem(rollOver);
- }
- } else if (over == CONSTANTS.MOUSE_OVER_IMAGE ) {
- if ( layerId && typeof(layerId) != "undefined" && layerId != "null" ) {
- GLOBAL_CurrentItem = layerId + CONSTANTS.MENU_LAYER_SUFIX;
- GLOBAL_items.removeSubitems(GLOBAL_CurrentItem);
- } else
- browser.hideMenuItem(GLOBAL_CurrentItem);
- }
- }
- function NOF_MenuOpenItem(image, submenu, parentId) {
- var layerId = submenu[0] + CONSTANTS.MENU_LAYER_SUFIX;
- var orientation = submenu[1];
- var openEffect = submenu[2];
- var offsetX = submenu[3];
- var offsetY = submenu[4];
- GLOBAL_items.addItem(layerId, parentId);
- GLOBAL_CurrentItem = layerId;
- browser.showMenuItem(image, layerId, offsetX, offsetY, openEffect);
- }
- function NOF_MenuCloseItem(imageSubmenu) {
- if (imageSubmenu[0]) {
- var layerId = imageSubmenu[0] + CONSTANTS.MENU_LAYER_SUFIX;
- if (GLOBAL_items.toArray().length == 1)
- GLOBAL_CurrentItem = 0;
- GLOBAL_Close = setTimeout("NOF_MenuHideItem('" + layerId + "')", CONSTANTS.MENU_REFRESH_TIME/4);
- }
- }
- function NOF_MenuHideItem(itemId) {
- if (itemId && itemId != null && GLOBAL_CurrentItem != itemId) {
- browser.hideMenuItem(itemId);
- }
- }
- function NOF_KeepOpen(itemId, parentId) {
- GLOBAL_CurrentItem = itemId;
- if (GLOBAL_Hide != null)
- for (var i = 0; i < GLOBAL_Hide.length; i++)
- clearTimeout(GLOBAL_Hide[i]);
- }
- function NOF_KeepClose() {
- GLOBAL_CurrentItem = "";
- setTimeout("NOF_CloseChilds()", CONSTANTS.MENU_REFRESH_TIME);
- }
- function NOF_CloseChilds() {
- var itemsList = GLOBAL_items.toArray();
- GLOBAL_Hide = new Array();
- if (GLOBAL_CurrentItem == "" || GLOBAL_CurrentItem == 0)
- for (var i in itemsList)
- if (itemsList[i])
- GLOBAL_Hide[i] = setTimeout("browser.hideMenuItem('" + itemsList[i] + "')", CONSTANTS.MENU_REFRESH_TIME/4);
- if (!isMenuAutoClose()) {
- itemsList = GLOBAL_items.toArray();
- for ( var i in itemsList )
- if (itemsList[i])
- NOF_KeepOpen(itemsList[i]);
- }
- }
- function isMenuAutoClose() {
- var itemsList = GLOBAL_items.toArray();
- if (itemsList[0] && itemsList[0].length) {
- var autoClose = browser.getItemAttribute(itemsList[0], "isautoclose");
- if ( autoClose == "true")
- return true;
- else
- return false;
- }
- return false;
- }
- function HideMenu() {
- if (isMenuAutoClose())
- return;
- var itemsList = GLOBAL_items.toArray();
- if (GLOBAL_Hide == null)
- GLOBAL_Hide = new Array();
- for (var i in itemsList)
- if (itemsList[i] && itemsList[i].length) {
- GLOBAL_items.removeItem(itemsList[i]);
- GLOBAL_Hide[i] = browser.hideMenuItem(itemsList[i]);
- }
- }
- function NOF_OpenedItems() {
- this.openedItems = "";
- this.separator = "*";
- this.addItem = function addItem(item, parent) {
- if ( item == null || !item || item == "" )
- return;
- if (this.openedItems.indexOf(item) == -1) {
- this.openedItems += this.openedItems.length ?
- ( this.openedItems.indexOf(this.separator) == this.openedItems.length - 1 ? "" : this.separator ) + item :
- item;
- }
- }
- this.removeItem = function removeItem(item) {
- if ( item == GLOBAL_CurrentItem )
- return;
- var temp = this.openedItems;
- if (temp.indexOf(item) > 0) {
- var a = temp.substring(0, temp.indexOf(item));
- var b = temp.substring(temp.indexOf(item) + item.length, temp.length );
- temp = a + b;
- }
- while (temp.lastIndexOf(this.separator) == temp.length - 1)
- temp = temp.substring(0, temp.length - 1);
- this.openedItems = temp;
- }
- this.removeSubitems = function removeSubitems(item) {
- if (item && typeof(item) != "undefined") {
- var temp = this.openedItems;
- temp = temp.substring(0, temp.lastIndexOf(item) + item.length);
- var temp1 = this.openedItems.substring(this.openedItems.indexOf(temp) + temp.length, this.openedItems.length);
- temp1 = temp1.split(this.separator);
- for (var i = temp1.length - 1; i >= 0; i--)
- if (temp1[i])
- browser.hideMenuItem(temp1[i]);
- this.openedItems = temp;
- }
- }
- this.currentItem = function currentItem() {
- var list = this.toArray();
- return list[list.length - 1];
- }
- this.removeAll = function removeAll() {
- var items = this.toArray();
- clearTimeout(GLOBAL_Close);
- for (var i = items.length - 1; i >= 0; i--)
- if ( items[i] != null && items[i] != "" ) {
- clearTimeout(items[i]);
- browser.hideMenuItem(items[i]);
- }
- this.openedItems = "";
- }
- this.toArray = function toArray() {
- return this.openedItems.split(this.separator);
- }
- }
- function F_menu(item) {
- NOF_Menu(item);
- }
- function F_roll(itemId, over, layerId, isNotMainItem){
- var layerId = (layerId == null || typeof(layerId) == "undefined") ? null : layerId;
- var isNotMainItem = (isNotMainItem == null || typeof(isNotMainItem) == "undefined") ? null : isNotMainItem;
- if (typeof(itemId) == "object" && itemId.constructor == Array) {
- for (var i = 0; i < itemId.length; i++) {
- NOF_MenuRollButton(itemId[i], over, layerId, isNotMainItem);
- }
- }
- else {
- NOF_MenuRollButton(itemId, over, layerId, isNotMainItem);
- }
- }
- function F_loadRollover(image, rollOverButton, submenu) {
- return NOF_MenuLoadRollOver(image, rollOverButton, submenu);
- }
-
-